npm has retired the legacy audit endpoints that pnpm uses, returning
410 for all requests (pnpm/pnpm#11265). This affects all pnpm 10.x
and 11.x versions with no upstream fix available.
Replace pnpm audit with Google's osv-scanner, which reads lockfiles
directly against the OSV database without depending on the npm
registry API. A single bin/osv-audit script downloads a pinned,
checksum-verified osv-scanner binary and scans all three lockfiles
(root, examples/web-cli, packages/react-web-cli).
The CI workflow is simplified: no pnpm/node setup or dependency
install needed since osv-scanner reads lockfiles directly.
Summary
/-/npm/v1/security/audits/quickand/-/npm/v1/security/audits) returning 410 for all requests (pnpm/pnpm#11265). This affects all pnpm 10.x/11.x versions with no upstream fix available.pnpm auditwith Google's osv-scanner, which reads lockfiles directly against the OSV database — no dependency on the npm registry API.bin/osv-auditscript handles downloading, checksum-verifying, and running osv-scanner. Same script used in ably/website#8255.--level critical|high|medium|lowto control the failure threshold (set tocriticalto match the previouspnpm audit --audit-level=criticalbehaviour).pnpm installneeded since osv-scanner reads lockfiles directly.Changes
bin/osv-audit— new script that downloads osv-scanner (pinned to v2.3.5), verifies the binary against release SHA256 checksums, scans specified lockfiles, and fails only if vulnerabilities at or above the configured severity threshold are found..github/workflows/audit.yml— replacedpnpm auditwithbin/osv-audit --level critical; removed pnpm/node setup steps andpnpm install(no longer needed). Scans all three lockfiles: root,examples/web-cli, andpackages/react-web-cli.Keeping osv-scanner up to date
The osv-scanner binary version is pinned in
bin/osv-audit. This is intentional — the vulnerability database is fetched live from osv.dev on every scan, so an older binary doesn't miss CVEs. Releases happen every 3-5 weeks and are mostly additive (new ecosystem support, performance, bug fixes). The core lockfile scanning path is stable.Bumping the version is a one-line change to
OSV_SCANNER_VERSION— the checksum verification fetches the matching SHA256SUMS from the same release, so no other changes are needed.Test plan
Security AuditGitHub Actions job passesbin/osv-audit --level critical pnpm-lock.yamlpasses (0 critical vulns)bin/osv-audit --level critical pnpm-lock.yaml examples/web-cli/pnpm-lock.yaml packages/react-web-cli/pnpm-lock.yamlpasses (0 critical, 19 high, 17 medium, 8 low — all below threshold)